<?php
/*
	Aurus CMS - free OOP CMS
	Copyright (C) 2010  Nestor Yanchuk

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 2 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
if (! defined('ROOT')) die();
/**
 * Клас для генерації HTML коду
 * 
 * @package Aurus
 * @author Kvis
 * @copyright 2010
 * @version 1.0
 * @access public
 */
class Html{
	/**
	 * Генерація тегу <table>, генерується тільки тег <table>, тож теги <tr> і <td> треба генерувати через відповідні функції даного класу
	 *
	 * @param string  - вміст таблиці
	 * @param string $width - ширина таблиці (пікселі або проценти)
	 * @param string $class - css клас таблиці
	 * @param string $align - розміщення таблиці(параметр align)
	 * @return string
	 */
	public static function table($content,$width = '100%',$class = '',$align = 'center'){
		if ($class) {
			$class = 'class="'.$class.'" ';
		}
		return '<table width="'.$width.'" align="'.$align.'" '.$class.'border="0" cellspacing="0" cellpadding="0">'.$content.'</table>'."\r\n";
	}
	
	/**
	 * Рядок в таблиці, тег <tr>
	 *
	 * @param string  - вміст рядка
	 * @param string $class - css клас рядка
	 * @param string $align - вирівнювання вмісту комірок по горизонталі (параметр align)
	 * @param string $valign - вирівнювання вмісту комірок по вертикалі (параметр valign)
	 * @return string
	 */
	public static function tr($content,$class = '',$align='left',$valign='top'){
		if ($class) {
			$class = 'class="'.$class.'" ';
		}
		return '<tr '.$class.'align="'.$align.'" valign="'.$valign.'">'.$content.'</tr>'."\r\n";
	}
	
	/**
	 * Комірка в рядку, тег <td>
	 *
	 * @param string  - вміст комірки
	 * @param string $class - css клас комірки
	 * @param string $align - розміщення комірки по горизонталі
	 * @param string $width - ширина комірки (проценти чи пікселі)
	 * @param string $valign - вирівнювання вмісту комірок по вертикалі (параметр valign)
	 * @param string $colspan - кількість комірок для склеєння, HTML параметр colspan
	 * @return string
	 */
	public static function td($content,$class = '',$align = 'left',$width = '50%',$valign = 'top',$colspan=''){
		if ($class) {
			$class1 = 'class="'.$class.'" ';
		} else $class1 = '';
		if ($colspan) {
			$colspan1 = 'colspan="'.$colspan.'" ';
		} else $colspan1 = '';
		if (is_array($content)) {
			$ret = '';
			foreach ($content as $leftcol => $rcol){
				$r  = self::td($leftcol,$class,$align,$width,$valign,$colspan);
				$r .= self::td($rcol,$class,$align,$width,$valign,$colspan);
				$ret .= self::tr($r);
			}
			return $ret;
		}
		return '<td '.$class1.$colspan1.' width="'.$width.'" valign="'.$valign.'" align="'.$align.'">'.$content.'</td>'."\r\n";
	}
	
	/**
	 * Генерація якогось тегу з параметрами
	 *
	 * @param string $cont - Вміст тегу
	 * @param string $tag - назва тегу (наприклад : a, pre,strong...)
	 * @param array $params - асоціативний масив параметрів з їх вмістом, наприклад (для тегу <a>):
	 * 						array(
	 * 							'href' => 'http://example.com/'
	 * 						)
	 * @return string
	 */
	public static function tag($cont,$tag,$params = array()){
		$ret = '<'.$tag;
		foreach ($params as $param => $value){
			$ret .= ' '.$param.'="'.$value.'"';
		}
		if ($cont) {
			return $ret.'>'.$cont.'</'.$tag.'>';
		} else {
			return $ret.'/>';
		}
	}
}